#include <iostream>
using namespace std;

class Target {
public:
    virtual void Request() {
        cout << "Target::Request..." << endl;
    }
    virtual ~Target() { }
};

class Adaptee {
public:
    void SpecificRequest() {
        cout << "Adaptee::SpecificRequest..." << endl;
    }
};

class Adapter :public Target, private Adaptee {
public:
    Adapter() 
	{}

    void Request() {
        SpecificRequest();
    }
};

int main() {
    Target *adapter = new Adapter();

    adapter->Request();

    delete adapter;

	getchar();

    return 0;
}
